class collectable
{
protected:

	IAnimatedMeshSceneNode	Nde;		//Collecable Node
	stringw					Nam;		//Name of Collecable
	int						Ani[][];	//Animation of Collectable
	stringw					Ste;		//State of Collectable
	int						Sty;		//Style of Collectable
	int						Amt;		//Ammount Within Collectable
	float					Hzd;		//Damage to User
	vector3df				Vlc;		//Collectable Velocity
	int						VisRng;		//Visual Range Minimum
	int						ActRng;		//Active Range Minimum
	int						IntRng;		//Interactive Range Minimum
	
	virtual collectable( ISceneNode, stringw, stringw, int, int, float )
	Update()
	{
		switch( Ste )
		{
			case "Appear":
				break;
			case "Active":
				break;
			case "Disappear":
				break;
			default "Static":
				break;
		};

		if(	Vlc )
			this->Nde.setPosition( this->Nde.getPosition() + Vlc );

		return this;
	};

	Pickup( void Ply )
	{
		//Grab Players Hand
		//Apply User Statistics
		//Remove Reference
		if( Amt == NULL ) collectable	delete;
		else if( Amt > 1 ) --Amt;

		return this;
	};

	~collectable();
private:

	list				Cnt;	//List of Collectables
	stringw				Inf =	//Collectable Info Table
		{{"",	""}
		{ "",	""}};
	//	  Name, Type
	ITriangleselector	Slc;	//Triangle selector
};
collectable::collectable( IAnimatedMeshSceneNode CNde, stringw CNam, stringw CAni, int CSty, int CAmt, float CHzd )
{
		Nde	= CNde;
		Nam	= CNam;
		Ani	= CAni;
		Sty	= CSty;
		Amt	= CAmt;
		Hzd	= CHzd;

		collectable::Cnt.push_back( this );

		return this;
};
collectable::~collectable()
{
	this->Nde.remove();
	collectable::Cnt.erase( this );
	
	return this;
};
